As examples of storage devices included in general host systems such as computer systems, there are magnetic hard disk drives (HDD), solid state drives (SSD) having nonvolatile semiconductor memories such as NAND flash memories mounted thereon, and embedded NAND flash memories. SSDs and embedded NAND flash memories are classified as storages, but can also be described as memory systems with extended sizes.
Such a memory system is constituted by an interface, a first memory block, a second memory block and a controller, for example. The first memory block stores data, and the second memory block is a buffer memory for writing/reading data. The first memory block is a nonvolatile memory that is larger than the second memory block but has a lower access speed. The second memory block is a temporary memory for processing an address translation table of the first memory block and is also used for compensating for the difference between the transmission rate of the interface and the write/read rate of the first memory block.
For example, the first memory block is nonvolatile NAND flash memory and the second memory block is a volatile DRAM or SRAM. When reading from NAND flash memory is performed, voltage is also applied to gates of unselected memory cells (unselected memory cells of pages not to be read). Accordingly, when reading is repeated, there is a problem of read disturb causing destruction of data stored in the memory cells and bit errors. As a measure against the read disturb, error correction using error correction coding (ECC) has been performed.
The second memory block that functions as a buffer memory used for ECC processing and the like is a volatile memory, and there has been a problem that data temporarily held in the second memory block are also lost when power is cut off during writing/reading of data, for example.